/*有一个正整数数组 arr，现给你一个对应的查询数组 queries，其中 queries[i] = [Li, Ri]。
* 对于每个查询i，请你计算从Li到Ri的XOR值（即arr[Li] xor arr[Li+1] xor ... xor arr[Ri]）作为本次查询的结果。
* 并返回一个包含给定查询 queries 所有结果的数组。
*
* 输入：arr = [4,8,2,10], queries = [[2,3],[1,3],[0,0],[0,3]]
* 输出：[8,0,4,4]
* */

package Leetcode;

import java.util.Arrays;

public class DecoderXOR_III {

    public static void main(String[] args) {

        DecoderXOR_III obj = new DecoderXOR_III();
        int[] arr = {4, 8, 2, 10};
        int[][] queries = {{2, 3}, {1, 3}, {0, 0}, {0, 3}};
        System.out.println(Arrays.toString(obj.xorQueries(arr, queries)));
    }

    //暴力解，可过
    //官方解真香，巧妙
    public int[] xorQueries(int[] arr, int[][] queries){

        int len = queries.length;
        int[] resv = new int[len];
        for (int i = 0;i < len;i++){

            int r = 0;
            for (int j = queries[i][0]; j <= queries[i][1];j++){
                r ^= arr[j];
            }
            resv[i] = r;
        }
        return resv;
    }
}
